﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Tree
{
    public class Node<T>
    {
        public IEnumerable<Node<T>> Childs
        {
            get;
            private set;
        }

        public T Value
        {
            get;
            set;
        }

        public void AddChild(Node<T> node)
        {
            if (node == null)
            {
                throw new ArgumentNullException("node");
            }

            this.Childs.Add(node);
        }

        public void RemoveChild(Node<T> node)
        {
            if (node == null)
            {
                throw new ArgumentNullException("node");
            }

            if (!this.Childs.Contains(node))
            {
                throw new InvalidOperationException("Узел " + node + " не содержится в данном дереве");
            }

            this.Childs.Remove(node);
        }

    }
}
